package org.pms.web.jsf.util;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 * Classe de utilitários JSF
 * @author Paulo
 *
 */
public class JsfUtil {

	/**
	 * Obter parametro do escopo request através da chave
	 * @param key chave (identificação) do parametro
	 * @return String valor do parametro
	 */
	public static String getRequestParameter(String key) {
        return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(key);
    }
	
	/**
	 * Adiciona uma mensagem de erro no faces
	 * @param msg mensagem de erro
	 */
	public static void addErrorMessage(String msg) {
		FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
				msg, msg);
		FacesContext.getCurrentInstance().addMessage(null, facesMsg);
	}
	
	/**
	 * Adiciona uma mensagem de erro no faces
	 * @param clientId identificador do componente
	 * @param msg mensagem de erro
	 */
	public static void addErrorMessage(String clientId, String msg) {
		FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
				msg, msg);
		FacesContext.getCurrentInstance().addMessage(clientId, facesMsg);
	}

	/**
	 * Adiciona uma mensagem de erro no faces
	 * @param context contexto do faces
	 * @param clientId identificador do componente
	 * @param msg mensagem de erro
	 */
	public static void addErrorMessage(FacesContext context, String clientId, String msg) {
		FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
				msg, msg);
		context.addMessage(clientId, facesMsg);
	}
	
	/**
	 * Adiciona uma mensagem de informação de sucesso de operação
	 * @param msg mensagem de sucesso
	 */
	public static void addSuccessMessage(String msg) {
		FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO,
				msg, msg);
		FacesContext.getCurrentInstance().addMessage("successInfo", facesMsg);
	}
}
